package com.ktgj.other.service;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

import com.ktgj.other.domain.EtOrder;
import com.ktgj.other.domain.common.HttpTongChengInfoCancel;
import com.ktgj.other.domain.common.HttpTongChengInfoOrder;
import com.ktgj.other.domain.common.HttpTongChengInfoRule;
import com.ktgj.other.domain.vo.ApplyRefundVo;
import com.ktgj.other.domain.vo.CheckoutCounterVo;
import com.ktgj.other.domain.vo.OrderDetailsVo;
import com.ktgj.other.domain.vo.PayVo;

import javax.servlet.http.HttpServletRequest;

/**
 * 【请填写功能名称】Service接口
 * 
 * @author ruoyi
 * @date 2022-07-22
 */
public interface IEtOrderService 
{
    /**
     * 查询【请填写功能名称】
     * 
     * @param orderid 【请填写功能名称】ID
     * @return 【请填写功能名称】
     */
    public EtOrder selectEtOrderById(Long orderid);

    /**
     * 查询【请填写功能名称】列表
     * 
     * @param etOrder 【请填写功能名称】
     * @return 【请填写功能名称】集合
     */
    public List<EtOrder> selectEtOrderList(EtOrder etOrder);

    /**
     * 新增【请填写功能名称】
     * 
     * @param etOrder 【请填写功能名称】
     * @return 结果
     */
    public int insertEtOrder(EtOrder etOrder);

    /**
     * 修改【请填写功能名称】
     * 
     * @param etOrder 【请填写功能名称】
     * @return 结果
     */
    public int updateEtOrder(EtOrder etOrder);

    /**
     * 批量删除【请填写功能名称】
     * 
     * @param orderids 需要删除的【请填写功能名称】ID
     * @return 结果
     */
    public int deleteEtOrderByIds(Long[] orderids);

    /**
     * 删除【请填写功能名称】信息
     * 
     * @param orderid 【请填写功能名称】ID
     * @return 结果
     */
    public int deleteEtOrderById(Long orderid);

    /**
     * 创建订单
     * */
    public String createOrder(HttpServletRequest request, EtOrder etOrder) throws Exception;

    /**
     * 门票收银台
     * */
    public CheckoutCounterVo checkoutCounter(HttpServletRequest request, String orderNum) throws Exception;

    /**
     * 支付
     * */
    public String pay(PayVo payVo, HttpServletRequest request) throws Exception;

    /**
     * 门票支付
     * */
    public Map<String, Object> etOrderPay(String orderNumber, String openId, HttpServletRequest request, BigDecimal amount, String type) throws Exception;

    /**
     * 门票下单
     * */
    public HttpTongChengInfoOrder orderPlace(String orderNum) throws Exception;

    /**
     * 门票订单列表
     * */
    public List<EtOrder> attractionsOrderList(HttpServletRequest request, String type) throws Exception;

    /**
     * 申请退票
     * */
    public HttpTongChengInfoCancel applyRefund(ApplyRefundVo applyRefundVo, HttpServletRequest request) throws Exception;

    /**
     * 订单详情
     * */
    public OrderDetailsVo orderDetails(Long id);

    /**
     * 退款规则
     * */
    public HttpTongChengInfoRule refundPolicy(Long id);
}
